1. Field of the Invention
The present invention relates to communications between computer applications. More specifically, the present invention relates to a method and an apparatus to facilitate secure message queuing.
2. Related Art
Computer applications executing on a computing system often need to communicate with other computer applications executing on other computing systems. One method of communicating between these computer applications is to establish a direct link between the computer systems. Establishing direct links from one application to another, however, is impractical because these computer applications may not be executing at the same time.
Another method of communicating between computer applications is to use messaging queues. When using messaging queues, a client can perform a number of operations, including sending a message to a queue or to a list of intended recipients, receiving a message from a queue, and registering to be notified of messages in the queue.
Although using messaging queues to communicate between different processes is effective and can allow computer applications to communicate with each other, even when these computer applications execute at different times, there can be problems in validating whether a specific message was actually sent or received. As an example, suppose that a recipient of a message performs an action in reliance on a message and, at some later time, the originator of the message denies sending the message. Or conversely, suppose that the originator sends a message and at some later time the recipient denies having received the message. In either case, determining the truth is difficult to impossible because of the lack of proof about whether the message was actually sent or received.
Some public key cryptographic systems have attempted to provide a non-repudiation of origination service for computer applications, which are in direct communication with each other. However, non-repudiation of recipient services and services which apply to queuing systems are presently non-existent.
What is needed is a method and an apparatus that provides non-repudiation of both message origination and message receipt within a queuing system.